এনক্যাপসুলেশন এবং অ্যাবস্ট্রাকশন

অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (Object-Oriented Programming - OOP) - কম্পিউটার প্রোগ্রামিং ফান্ডামেন্টাল (Computer Programming Fundamentals) - Computer Science

515

এনক্যাপসুলেশন (Encapsulation)

এনক্যাপসুলেশন হলো একটি প্রক্রিয়া যা ডেটা এবং তার সাথে সম্পর্কিত ফাংশন বা মেথডগুলোকে একত্রে একটি একক ইউনিটে বেঁধে রাখে। এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের (OOP) একটি গুরুত্বপূর্ণ বৈশিষ্ট্য।

এনক্যাপসুলেশনের মাধ্যমে আমরা ডেটা এবং ফাংশনগুলোকে সরাসরি অ্যাক্সেস না দিয়ে, একটি ক্লাসের মাধ্যমে নিয়ন্ত্রিত অ্যাক্সেস প্রদান করতে পারি। এটি কোডের নিরাপত্তা এবং স্থিতিশীলতা বাড়ায়, কারণ বাহ্যিক কোনো কোড সরাসরি ডেটা পরিবর্তন করতে পারে না।

উদাহরণ (Python):

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # প্রাইভেট ভেরিয়েবল (প্রত্যক্ষ অ্যাক্সেস করা যাবে না)

    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount

    def withdraw(self, amount):
        if 0 < amount <= self.__balance:
            self.__balance -= amount

    def get_balance(self):
        return self.__balance

ব্যাখ্যা: এখানে __balance হলো একটি প্রাইভেট ভেরিয়েবল, যা বাহির থেকে সরাসরি অ্যাক্সেস করা যাবে না। এটি কেবলমাত্র deposit(), withdraw(), এবং get_balance() মেথডের মাধ্যমে অ্যাক্সেস করা যাবে। এনক্যাপসুলেশন ব্যবহার করে ব্যাঙ্কের অ্যাকাউন্টের ব্যালান্সকে নিয়ন্ত্রিতভাবে অ্যাক্সেস করা হয়েছে।


অ্যাবস্ট্রাকশন (Abstraction)

অ্যাবস্ট্রাকশন হলো জটিলতা কমানোর একটি প্রক্রিয়া যা কেবলমাত্র প্রয়োজনীয় তথ্য প্রকাশ করে এবং অবাঞ্ছিত বিবরণ লুকিয়ে রাখে। এটি ব্যবহারকারীর দৃষ্টিভঙ্গিতে কেবল গুরুত্বপূর্ণ তথ্য প্রদর্শন করে এবং অভ্যন্তরীণ জটিলতা লুকিয়ে রাখে।

অ্যাবস্ট্রাকশন সাধারণত Abstract Classes এবং Interfaces এর মাধ্যমে প্রয়োগ করা হয়। এটি আমাদেরকে একটি শ্রেণীর (class) বাহ্যিক আচরণ বোঝাতে সাহায্য করে, কিন্তু অভ্যন্তরীণ কাজ কীভাবে হচ্ছে তা না দেখিয়ে।

উদাহরণ (Python):

from abc import ABC, abstractmethod

class Animal(ABC):  # Abstract Class
    @abstractmethod
    def sound(self):
        pass  # Abstract Method, এখানে শুধু প্রয়োজনীয় তথ্য আছে, বাস্তবায়ন নয়

class Dog(Animal):  # Subclass
    def sound(self):
        return "Bark"

class Cat(Animal):  # Subclass
    def sound(self):
        return "Meow"

ব্যাখ্যা: এখানে Animal হলো একটি অ্যাবস্ট্রাক্ট ক্লাস যা sound মেথডকে সংজ্ঞায়িত করেছে, কিন্তু তার বাস্তবায়ন করে নি। Dog এবং Cat ক্লাসগুলিতে sound() মেথড বাস্তবায়ন করা হয়েছে, যা প্রতিটি প্রাণীর জন্য আলাদা।


এনক্যাপসুলেশন বনাম অ্যাবস্ট্রাকশন

বৈশিষ্ট্যএনক্যাপসুলেশনঅ্যাবস্ট্রাকশন
অর্থডেটা এবং ফাংশনগুলোকে একত্রে বাঁধাজটিলতা হ্রাস করে শুধুমাত্র প্রয়োজনীয় তথ্য প্রকাশ
লক্ষ্যডেটার সরাসরি অ্যাক্সেস রোধ করাঅবাঞ্ছিত বিবরণ লুকিয়ে ব্যবহারকারীর জন্য সহজ করা
বাস্তবায়নপ্রাইভেট ভেরিয়েবল এবং মেথড ব্যবহার করেAbstract Class বা Interface ব্যবহার করে
উদাহরণব্যাংক অ্যাকাউন্টের ব্যালান্স নিয়ন্ত্রণ করাভিন্ন প্রাণীর আওয়াজ প্রকাশ করা

উপসংহার

এনক্যাপসুলেশন এবং অ্যাবস্ট্রাকশন উভয়ই OOP এর গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটার নিরাপত্তা এবং কোডের সরলীকরণে সহায়ক। এনক্যাপসুলেশন ডেটাকে নিয়ন্ত্রিতভাবে অ্যাক্সেসযোগ্য করে তোলে, আর অ্যাবস্ট্রাকশন কেবলমাত্র প্রয়োজনীয় তথ্য প্রকাশ করে জটিলতা কমায়।

Promotion

Are you sure to start over?

Loading...